home *** CD-ROM | disk | FTP | other *** search
/ Software of the Month Club 2000 October / Software of the Month - Ultimate Collection Shareware 277.iso / pc / PROGRAMS / UTILITY / WINLINUX / DATA1.CAB / programs_-_include / ASM-PPC / TIMEX.H < prev    next >
C/C++ Source or Header  |  1999-09-17  |  914b  |  40 lines

  1. /*
  2.  * linux/include/asm-ppc/timex.h
  3.  *
  4.  * ppc architecture timex specifications
  5.  */
  6. #ifndef _ASMppc_TIMEX_H
  7. #define _ASMppc_TIMEX_H
  8.  
  9. #define CLOCK_TICK_RATE    1193180 /* Underlying HZ */
  10. #define CLOCK_TICK_FACTOR    20    /* Factor of both 1000000 and CLOCK_TICK_RATE */
  11. #define FINETUNE ((((((long)LATCH * HZ - CLOCK_TICK_RATE) << SHIFT_HZ) * \
  12.     (1000000/CLOCK_TICK_FACTOR) / (CLOCK_TICK_RATE/CLOCK_TICK_FACTOR)) \
  13.         << (SHIFT_SCALE-SHIFT_HZ)) / HZ)
  14.  
  15. typedef unsigned long cycles_t;
  16.  
  17. /*
  18.  * For the "cycle" counter we use the timebase lower half.
  19.  * Currently only used on SMP.
  20.  *
  21.  * Since SMP kernels won't run on the PPC601 CPU (which doesn't have
  22.  * the timebase register) anyway, we don't bother checking the CPU version.
  23.  */
  24.  
  25. extern cycles_t cacheflush_time;
  26.  
  27. static inline cycles_t get_cycles(void)
  28. {
  29. #ifdef __SMP__
  30.     cycles_t ret;
  31.  
  32.     __asm__("mftb %0" : "=r" (ret) : );
  33.     return ret;
  34. #else
  35.     return 0;
  36. #endif
  37. }
  38.  
  39. #endif
  40.